// pages/supply/my/my.js
const app = getApp()
const i18n = require('../../../utils/i18n/index')

Page({

    /**
     * 页面的初始数据
     */
    data: {
        interestList: [],
        page: 1,
        hasMore: true,
        loading: false,
        refreshing: false,
        cdnUrl: '',
        locale: 'zh_CN',
        t: {}
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        this.setData({
            cdnUrl: app.globalData.cdnUrl
        })
        this.setI18nData()
        this.loadInterestList()
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        wx.setNavigationBarTitle({
            title: i18n.t('mine.menu.mySupply')
        });
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    setI18nData() {
        this.setData({
            locale: i18n.getLocale(),
            t: {
                title: i18n.t('supply.interest.title'),
                empty: i18n.t('supply.interest.empty'),
                loading: i18n.t('common.loading'),
                noMore: i18n.t('supply.noMore')
            }
        })
    },

    onLanguageChange() {
        this.setI18nData()
    },

    // 加载关注列表
    loadInterestList(isRefresh = false) {
        if (this.data.loading) return

        this.setData({ loading: true })

        wx.request({
            url: app.globalData.baseUrl + 'api/my-needs',
            data: {
                page: this.data.page
            },
            header: {
                'Authorization': `Bearer ${app.globalData.token}`
            },
            success: res => {
                if (res.data.code === 0) {
                    const list = res.data.data.needs || []
                    this.setData({
                        interestList: isRefresh ? list : [...this.data.interestList, ...list],
                        hasMore: list.length === 10,
                        page: isRefresh ? 1 : this.data.page + 1
                    })
                }
            },
            complete: () => {
                this.setData({
                    loading: false,
                    refreshing: false
                })
            }
        })
    },

    // 加载更多
    onLoadMore() {
        if (this.data.hasMore && !this.data.loading) {
            this.loadInterestList()
        }
    },

    // 下拉刷新
    onRefresh() {
        this.setData({
            refreshing: true,
            page: 1,
            interestList: []
        }, () => {
            this.loadInterestList(true)
        })
    },

    // 点击项目
    onItemTap(e) {
        const id = e.currentTarget.dataset.id
        wx.navigateTo({
            url: `/pages/supply/detail/detail?id=${id}`
        })
    },

    onEditLocTap(e) {
        const id = e.currentTarget.dataset.id
        wx.setStorageSync('needEditId', id)

        wx.showModal({
            title: '提示',
            content: '修改后会进入重新审核流程，确认操作吗？',
            success: (res) => {
                if (res.confirm) {
                    wx.switchTab({
                        url: '/pages/supply/publish/publish',
                        success: function() {
                            // 这里手动触发需要的函数
                            const currentPage = getCurrentPages().pop();  // 获取当前页面实例
                            if (currentPage && currentPage.onEdit) {
                            currentPage.onEdit();  // 如果页面有 onShow 方法，手动调用
                            }
                        }
                    })
                }
            }
        })
    },
    
    // 删除操作
    onDeleteTap(e) {
        const id = e.currentTarget.dataset.id;
        wx.showModal({
            title: '提示',
            content: '确认删除该项吗？',
            success: (res) => {
                if (res.confirm) {
                    // 调用删除接口，假设是 DELETE 请求
                    wx.request({
                        url: app.globalData.baseUrl + `api/my-needs/${id}`,
                        method: 'GET',
                        header: {
                            'Authorization': `Bearer ${app.globalData.token}`
                        },
                        success: res => {
                            if (res.data.code === 0) {
                                // 删除成功后重新加载列表
                                this.onRefresh();
                            } else {
                                wx.showToast({ title: '删除失败', icon: 'none' });
                            }
                        }
                    });
                }
            }
        });
    },

    // 下架操作
    onDownTap(e) {
        const id = e.currentTarget.dataset.id;
        wx.showModal({
            title: '下架',
            content: '确认下架该项吗？',
            success: (res) => {
                if (res.confirm) {
                    // 调用下架接口，假设是 PUT 请求
                    wx.request({
                        url: app.globalData.baseUrl + `api/my-needs/${id}/down`,
                        method: 'PUT',
                        header: {
                            'Authorization': `Bearer ${app.globalData.token}`
                        },
                        success: res => {
                            if (res.data.code === 0) {
                                // 下架成功后重新加载列表
                                this.loadInterestList(true);
                            } else {
                                wx.showToast({ title: '下架失败', icon: 'none' });
                            }
                        }
                    });
                }
            }
        });
    },

    // 滑动变化时触发的事件
    onSwipeChange(e) {
        console.log(e.detail);
    }
})